解决mysql表不能查询修改删除等操作并出现卡死
问题现象1:进程wait卡住
测试环境mysql出现了一个怪表:select查询表卡死,alter修改表卡死,甚至我不想要这个表了,delete、truncate、drop表都卡死卡主了......
解决办法:
>show full processlist; // 列出进程,找出处于waiting的process,要杀死这些process
......
...... >kill ID; // ID号就是指的列出的第一列“Id”
到此,可以解决一般性的卡死。(如果必要,考虑重启一下mysql)
问题现象2:删除表报错ERROR 1051 (42S02): Unknown table ‘xxx’
表删除不掉,mysql也重启了,而且drop表的时候出现ERROR 1051 (42S02): Unknown table......
mysql> drop table db_A.tbl_aaa; ERROR 1051 (42S02): Unknown table 'db_A.tbl_aaa'
解决办法:
方法①:修复表,使之正常后,再将其删除(推荐)
[root@server-1 ~]# mysqlcheck --auto-repair --database db_A --user=root --password Warning: Using unique option prefix database instead of databases is deprecated and will be removed in a future release. Please use the full name instead. Enter password: db_A.tbl_aaa OK db_A.tbl_bbb OK db_A.tbl_ccc OK db_A.tbl_ddd OK db_A.tbl_eee OK db_A.tbl_fff OK
再次登录mysql执行
mysql> use db_A; Database changed mysql> drop table tbl_aaa; Query OK, 0 rows affected (0.01 sec)
方法②:进数据存放目录直接删除相应的表文件
mysql默认数据存放目录: /var/lib/mysql/
~]# cd /var/lib/mysql/db_A/ db_A ]# rm -f tbl_aaa.frm db_A ]# rm -f tbl_aaa.ibd
然后再次连接mysql,db_A库中的tbl_aaa表就不见了。
结束.